d6d33f5d2ddcb3438169385a2dac5ac2754105ef,grails-datastore-core/src/main/groovy/org/grails/datastore/mapping/model/config/JpaMappingConfigurationStrategy.java,JpaMappingConfigurationStrategy,getPersistentProperties,#PersistentEntity#MappingContext#ClassMapping#boolean#,34
Before Change
if (hasAnnotation(readMethod, field, Id.class)) {
continue;
}
if (hasAnnotation(readMethod, field, EmbeddedId.class)) {
continue;
}
After Change
for (MetaProperty metaProperty : cpf.getMetaProperties()) {
PropertyDescriptor descriptor = propertyFactory.createPropertyDescriptor(metaProperty);
if (descriptor == null || descriptor.getPropertyType() == null || descriptor.getPropertyType() == Object.class) {
// indexed property
continue;
}
if (descriptor.getReadMethod() == null || descriptor.getWriteMethod() == null) {
// non-persistent getter or setter
continue;
}
final String propertyName = descriptor.getName();
Method readMethod = descriptor.getReadMethod();
Field field;
try {
field = cpf.getDeclaredField(descriptor.getName());
} catch (Exception e) {
continue;
}
if (hasAnnotation(readMethod, field, Transient.class)) {
continue;
}
if (isExcludedProperty(propertyName, classMapping, new ArrayList<>(), includeIdentifiers)) continue;
Class<?> propertyType = descriptor.getPropertyType();
if(getAnnotation(readMethod, field, Id.class) != null) {
persistentProperties.add( propertyFactory.createIdentity(entity, context, descriptor));
}
else if(getAnnotation(readMethod, field, EmbeddedId.class) != null) {
persistentProperties.add( propertyFactory.createIdentity(entity, context, descriptor));
}
else if (getAnnotation(readMethod, field, Embedded.class) != null) {